import {SubjectModel} from "../../../models/subject/SubjectModel";
import {config} from "../../../config";

const subjectModel = new SubjectModel()
Page({

    /**
     * 页面的初始数据
     */
    data: {

        title: "所有课程",
        subjectList: [],

        caNameOption: [
            {
                text: "全部分类",
                value: 0
            }
        ],
        sortOption: [

            {
                text: "综合排序",
                value: 0
            }

        ],

        caValue: 0,
        sortValue: 0,
        showStatus: false,
        type: 2,
        current: 1,
        pageSize: 10
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {

        if (options.data) {

            let {type, caid, caname} = JSON.parse(options.data)
            this.setData({
                title: caname
            })
            this.getSubjectByCa(caid, this.data.current, this.data.pageSize)
        } else {

            this._init(this.data.type, this.data.current, this.data.pageSize)
        }
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function () {

    },

    _init(type, current, pageSize) {

        const getSubject = subjectModel.getSubjectPage(type, current, pageSize)
        Promise.all([getSubject])
            .then(res => {

                this.setData({

                    subjectList: res[0]
                })
            })
            .catch(err => {
                console.log(err);
            })

    },

    /**
     * 根据分类获取课程
     * @param caId
     * @param current
     * @param pageSize
     * @returns {Promise<T | never>}
     */
    getSubjectByCa(caId, current, pageSize) {

        return subjectModel.getSubjectByCa(caId, current, pageSize)
            .then(res => {

                if (res.length === 0) {

                    this.setData({
                        showStatus : true
                    })

                } else {
                    this.setData({

                        subjectList: res
                    })
                }

            })
            .catch(err => {
                console.log(err);
            })

    },

    buttonTap(){
        wx.navigateBack({
            delta: 1
        })
    }

})